home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / comm2 / ums116bt.lha / UMS / rexx / WriteMessage.rexx < prev   
OS/2 REXX Batch file  |  1995-05-13  |  2KB  |  111 lines

  1. /* ------------------------------------------------------------------------
  2.    :Program.    WriteMessage.rexx
  3.    :Contents.   writes a new message to UMS' messagebase
  4.    :Author.     Kai Bolay [kai]
  5.    :Address.    Snail Mail:              EMail:
  6.    :Address.    Hoffmannstraße 168       UUCP: kai@amokle.stgt.sub.org
  7.    :Address.    D-71229 Leonberg         FIDO: 2:2407/106.3
  8.    :History.    v1.0 [kai] 23-Sep-93
  9.    :History.    v1.1 [hG]  16-Jan-94 added argument passing
  10.    :History.    v1.2 [hG]  23-Jan-94 uses UMSInit.rexx 1.1 and
  11.    :History.                         hgRexxSupport.library
  12.    :History.    v2.0 [kai] 21-Dec-94 adapted to UMS v11
  13.    :History.    v2.1 [kai] 13-May-95 added support for FILE
  14.    :Version.    $VER: WriteMessage.rexx 2.1 (13.5.95)
  15.    :Copyright.  Public Domain
  16.    :Language.   ARexx
  17.    :Translator. RexxMast
  18. ------------------------------------------------------------------------ */
  19.  
  20. options results
  21.  
  22. RC = 0
  23.  
  24. signal on BREAK_C
  25. signal on BREAK_D
  26. signal on BREAK_E
  27. signal on BREAK_F
  28. signal on ERROR
  29. signal on HALT
  30. signal on IOERR
  31. signal on SYNTAX
  32.  
  33. /*** Init ***/
  34.  
  35. call addlib("rexxdossupport.library", 0, -30)
  36. call addlib("ums.library", 0, -210, 11)
  37. call UMSInitConsts()
  38.  
  39. /*** Arguments ***/
  40.  
  41. ProgramName = "WriteMessage";
  42. ArgsTemplate = "NAME/A,PASSWORD,SERVER/K,FILE/A";
  43. args.SERVER = ""
  44. args.PASSWORD = ""
  45.  
  46. parse arg arguments
  47. if strip(arguments) = '?' then do
  48.   call writech(STDOUT, ArgsTemplate || ': ')
  49.   arguments = readln(STDIN)
  50. end; else nop
  51. if ~ReadArgs(arguments,ArgsTemplate,"args.") then do
  52.   say Fault(RC, ProgramName)
  53.   exit 10
  54. end; else nop
  55.  
  56. /*** Login ***/
  57.  
  58. account = UMSLogin(args.name, args.password, args.server)
  59. if account = 0 then do
  60.   say "unable to login."
  61.   exit 10
  62. end
  63.  
  64. /*** Do the magic ***/
  65.  
  66. drop msg.
  67. msg.UMSCODE_MsgText_FILE = args.file
  68. msg.UMSCODE_ToName       = "SysOp"
  69. msg.UMSCODE_Subject      = "Yeah, Yeah, Yeah"
  70. msg.UMSCODE_ReplyName    = "root"
  71.  
  72. num = UMSWriteMsg(account, msg.)
  73. if num = 0 then do
  74.   call CheckErr
  75. end; else do
  76.   say "The new message got #" || num
  77. end
  78.  
  79. /*** Final cleanup ***/
  80.  
  81. BREAK_C:
  82. BREAK_D:
  83. BREAK_E:
  84. BREAK_F:
  85. ERROR:
  86. HALT:
  87. IOERR:
  88. SYNTAX:
  89.  
  90. IF RC ~= 0 THEN DO
  91.   SAY "Error: " rc errortext(rc) "Line" sigl
  92. END
  93.  
  94. /*** Logout ***/
  95.  
  96. if account ~= 0 then do
  97.   call UMSLogout(account)
  98.   account = 0
  99. end
  100.  
  101. exit
  102.  
  103. /*** Support ***/
  104.  
  105. CheckErr: procedure expose account
  106.   err = UMSErrNum(account)
  107.   if err ~= 0 then do
  108.     say "UMS Error #" || err || ": " || UMSErrTxt(account)
  109.   end
  110. return
  111.